<?php

namespace App\Models;


use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Library\Fluent;

/**
 * menus 映射表
 */
#[ORM\Entity]
class Menus extends Fluent
{
    /**
     * 主键ID
     * @var int|null
     */
    #[ORM\Id]
    #[ORM\Column(type: Types::INTEGER)]
    #[ORM\GeneratedValue]
    public int|null $id = null;

    /**
     * 父级ID
     * @var int
     */
    #[ORM\Column(type: Types::INTEGER)]
    protected int $pid = 0;

    /**
     * 菜单名称
     * @var string
     */
    #[ORM\Column(length: 140)]
    public string $menuName = "";

    /**
     * 菜单类型
     * @var int
     */
    #[ORM\Column(type: Types::SMALLINT, length: 2)]
    public int $menuType = 0;

    /**
     * 菜单图标
     * @var string
     */
    #[ORM\Column(length: 30)]
    public string $icon = "";

    /**
     * 组件名称
     * @var string
     */
    #[ORM\Column(length: 50)]
    public string $component = "";

    /**
     * 路由名称
     * @var string
     */
    #[ORM\Column(length: 50)]
    public string $routeName = "";

    /**
     * 路由路径
     * @var string
     */
    #[ORM\Column(length: 50)]
    public string $routePath = "";

    /**
     * 菜单排序
     * @var int
     */
    #[ORM\Column(type: Types::INTEGER)]
    public int $order = 0;

    /**
     * 菜单状态
     * @var int
     */
    #[ORM\Column(type: Types::SMALLINT, length: 2)]
    public int $status = 0;

    /**
     * 创建时间
     * @var string
     */
    #[ORM\Column(type: Types::DATETIME_MUTABLE)]
    public string $createTime = "";

    /**
     * 更新时间
     * @var string
     */
    #[ORM\Column(type: Types::DATETIME_MUTABLE)]
    public string $updateTime = "";

}